/*
    clearerr()函数,ferror()函数，feof()函数的使用
    调用 fread()读取数据时，如果返回值小于参数 nmemb 所指定的值，表示发生了错误或者已经到了文件
    末尾（文件结束 end-of-file），但 fread()无法具体确定是哪一种情况；在这种情况下，可以通过判断错误标
    志或 end-of-file 标志来确定具体的情况。
*/

#include<stdio.h>
#include<stdlib.h>

int main()
{
    FILE *fp = NULL;
    char buf[20] = {0};

    /*  打开文件    */
    if(NULL == (fp = fopen("./test_file","r"))){
        perror("fopen error");
        exit(-1);
    }
    printf("打开文件成功！\n");

    /*  将读写位置移动到文件末尾    */
    if(0>fseek(fp,0,SEEK_END)){
        perror("fseek error");
        fclose(fp);
        exit(-1);
    }

    /*  读文件    */
    if(10>fread(buf,1,10,fp)){
        if(feof(fp)){
            printf("end-of-file标志被设置，已经到了文件尾！\n");
        }
        //清除标志
        clearerr(fp);
    }

    /*  关闭文件    */
    fclose(fp);
    exit(0);

}